package com.wy.springbootblog.pojo;


import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @author work
 */ //统一响应结果
@NoArgsConstructor
@AllArgsConstructor
@Data
public class Result<T> {
    private Integer code;//业务状态码  200-成功  500-失败
    private String message;//提示信息
    private T data;//响应数据
    private Long total; // 列表总数

    // 成功，并且不带数据
    public static Result<Void> success() {
        return new Result<>(200, "操作成功", null, null);
    }

    // 成功，带有数据
    public static <E> Result<E> success(E data) {
        return new Result<>(200, "操作成功", data, null);
    }

    // 成功，带有数据和总计
    public static <E> Result<E> success(E data, Long total) {
        return new Result<>(200, "操作成功", data, total);
    }

    // 失败
    public static Result<Void> error(String message) {
        return new Result<Void>(500, message, null, null);
    }
}
